package eu.runelord.programmers.java.faq.jcomponentdigitsonly;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Klasa pozwala na konwertowanie łańcuchów znaków na liczby.
 * 
 * @author bartlomiejk
 * 
 * 
 *         $Id: StringToNumberConverter.java 154 2009-03-10 13:09:40Z bjkuczynski $
 */
public class StringToNumberConverter implements Converter<String, Double> {

	private Pattern pattern = Pattern.compile("^[0-9]*\\.?[0-9]*$");
	private Matcher matcher;
	
	/**
	 * Metoda konwertuje String na Double. Jeżeli konwersja nie jest możliwa
	 * zwracany jest <b>null</b>
	 */
	public Double convert(String from) {
		if (from == null || from.trim().length() == 0)
			return null;
		matcher = pattern.matcher(from);
		if(!matcher.matches())
			return null;
		return Double.parseDouble(from);
	}
}
